/**
 * Space Colony is developed by Jared Hilgefort, Bunty Ranu, and Jacob Parmley
 */
package com.spacecolony.service;

import com.spacecolony.model.Enemy;
import com.spacecolony.model.UserAccount;
import com.spacecolony.model.World;

/**
 * Interface which represents the core game functionality
 * @author Jared
 *
 */
public interface IGameService {
	/**
	 * Starts the game
	 * @throws Exception 
	 * 
	 */
	public void startGame() throws Exception;
	
	/**
	 * Fetches the account from DAO layer
	 * 
	 */
	public void fetchAccount();
	
	/**
	 * Controls the movement of characters
	 * @throws Exception 
	 */
	public void move() throws Exception;
	
	/**
	 * Controls the shooting of projectiles
	 * @throws Exception 
	 */
	public void shoot() throws Exception;
	
	/**
	 * Gets the user account
	 * @return - a User account object
	 */
	public UserAccount getUser();
	
	/**
	 * Gets the enemy object
	 * @return - an Enemy object
	 */
	public Enemy getEnemy();
	
	/**
	 * Gets the world object
	 * @return - a World object
	 */
	public World getWorld();
	
}
